【发布时间】:2017-12-19 16:54:48
【问题描述】:
在应用程序中,我定义我的状态如下:
$stateProvider
.state('index', {
url: '/',
controller: 'indexController',
resolve: {
foo: ['$q', '$ocLazyLoad', function ($q, $ocLazyLoad) {
let deferred = $q.defer();
require.ensure([], function () {
let module = require('./index/test.ts')(angularRef);
$ocLazyLoad.load({ name: 'myAppIndex' });
deferred.resolve(module);
});
return deferred.promise;
}]
}
})
webpack 定义如下所示:
...
module: {
loaders: [
{
test: /\.js$/,
use: [
{ loader: 'babel-loader', query: { compact: true } },
]
},
{ test: /\.ts?$/, loader: "ts-loader" },
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [
{ loader: 'css-loader', query: { modules: false, sourceMaps: false, minimize: true } }
]
})
}, {
test: /\.scss$/,
loader: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [
{ loader: 'css-loader', query: { modules: false, sourceMaps: false, minimize: true } },
{ loader: 'sass-loader', query: { sourceMaps: false } }
]
})
}, {
test: /\.html$/,
loader: 'raw-loader',
exclude: /node_modules/
}
]
....
不要忘记 tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"lib": [ "es2015", "dom" ],
"typeRoots": [
"./node_modules/@types/"
],
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
但是每次我用 webpack 编译脚本 "webpack-dev-server --inline --watch --devtool eval --progress --colors --content-base 视图"
我收到了这个错误
main.bundle.js:1 TypeError: webpack_require(...) 不是函数
'./index/test.ts' 被调用,里面有一个“console.log”被调用
所以最大的问题是,我做错了什么?
【问题讨论】:
标签: angularjs webpack angular-ui-router