Ответ 1
Это происходит потому, что angular -localforage ожидает, что "this" будет глобальной областью (окном). Я сделал это с кодом:
require("imports?this=>window!angular-localforage/dist/angular-localForage.js")
Этот код зависит от модуля npm импорта-загрузчика, поэтому запустите:
npm install imports-loader
Я также добавил некоторую конфигурацию для webpack, чтобы она корректно разрешала localforage:
var path = require('path')
module.exports = {
entry: "./app.js",
output: {
path: './',
filename: "bundle.js",
publicPath: '/'
}
, module: {
loaders: [
{test: /\.less$/, loader: "style!css!less"},
{test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'},
{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'},
{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'},
{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'},
{
include: [
path.resolve(__dirname, "bower_components/localforage")
],
//Export localforage var
loader: 'exports-loader?localforage'
}
]
//Don't parse 'require' inside localforage because wepack can't resolve it coorectly
, noParse: /localforage\./
}
, resolve: {
root: [ path.resolve('./bower_components') ]
, moduleDirectories: ['./bower_components']
, alias: {
//Make webpack to load compiled version, not source.
'localforage': 'localforage/dist/localforage.js'
}
}
};
Вам также не нужно требовать, чтобы локальный ресурс вручную был добавлен, когда будет обработан angular -localForage.