2017-02-13 2 views
1

Я пытаюсь настроить AOT-сборку, используя Angular 2 и Webpack (JIT-сборка отлично работает). Всякий раз, когда я пытаюсь его построить, я получаю ERROR in Could not resolve "src/app/app.module" from "src/app/app.module". Я попытался удалить плагины webpack помимо AotPlugin, использовал каждую комбинацию относительных/абсолютных путей для опций AotPlugin, и никаких результатов не было. Я использую webpack 2.2.1, typescript 2.0.10, @ ngtools/webpack 1.2.9 и версию узла 6.9.4. Любая помощь будет потрясающей, спасибо!Угловой 2 Webpack AOT не может разрешить entryModule

Отрывки из webpack.config:

module: { 
    rules: [ 
    { test: /\ts$/, loader: @'ngtools/webpack } 
    ] 
} 

plugins: [ 
    new webpack.NoEmitOnErrorsPlugin(), 
    new AotPlugin({ 
    tsConfigPath: './tsconfig.json', 
    entryModule: 'src/app/app.module#AppModule', 
    mainPath: 'src/main' 
    }), 
    new webpack.optimize.UglifyJsPlugin({ 
    beautify: false, 
    mangle: { 
     screw_ie8: true, 
     keep_fnames: true 
    }, 
    compress: { 
     warnings: false, 
     screw_ie8: true 
    }, 
    comments: false 
    }), 
    new ExtractTextPlugin('[name].[hash].css'), 
    new webpack.DefinePlugin({ 
    'process.env': { 
    'ENV': JSON.stringify(ENV) 
    } 
    }) 
] 

tsconfig.json

{ 
    "compilerOptions": { 
    "baseUrl": "src", 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    }, 
    "compileOnSave": false 
} 
+0

Попробуйте использовать относительный путь, как:. **/SRC/приложение/app.module ** – Fals

+0

Хотя это напрямую не работает , вопрос определенно был связан с этим путем. Я подробно остановился на ответе на вопрос. – peaches

ответ

3

Отвечая на мой собственный вопрос, должно быть, был вопрос путь. Я использовал вспомогательную функцию для путей, и по некоторым причинам в этом случае не было.

вспомогательная функция:

var path = require('path'); 

var _root = path.resolve(__dirname, '..'); 
function root(args) { 
    args = Array.prototype.slice.call(arguments, 0); 
    return path.join.apply(path, [_root].concat(args)); 
} 

использование:

entryModule: root('src', 'app', 'app.module#AppModule') 
+0

Ты спас меня! По какой-то причине конфигурация Webpack ненавидит относительные пути. Я использовал path.resolve (__ dirname, 'path') – light24bulbs

Смежные вопросы