qzr*_*qzr 27 ionic-framework webpack ionic2
我想扩展离子的默认webpack配置.具体来说,我想添加一个别名来解析模块,这样我就可以按照绝对路径导入模块,而不是相对的模块:
而不是像这样导入模块:
import { SomeComponent } from '../../components/some.component.ts';
Run Code Online (Sandbox Code Playgroud)
我想要
import { SomeComponent } from '@app/components/some.component.ts';
Run Code Online (Sandbox Code Playgroud)
where @app
源是根源目录的别名.
在其他项目中,我可以通过向webpack配置添加这样的内容来实现此目的:
module.exports = {
...
resolve: {
extensions: ['.ts', '.js'],
alias: {
'@app': path.resolve('./'),
}
},
...
};
Run Code Online (Sandbox Code Playgroud)
我不知道如何在没有覆盖默认webpack配置的情况下使用Ionic执行此操作.
raj*_*raj 31
接受的答案工作正常,但webpack.config.js
每次更新时都必须更新app-script
.因此,而不是复制的代码,require
它在webpack.config.js
package.json
"config": {
"ionic_webpack": "./config/webpack.config.js"
}
Run Code Online (Sandbox Code Playgroud)
webpack.config.js
const webpackConfig = require('../node_modules/@ionic/app-scripts/config/webpack.config');
webpackConfig.resolve = {
extensions: ['.ts', '.js'],
alias: {
'@app': path.resolve('./'),
}
}
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,您可以遵循此方法,config
每次更新时都不必更新app-script
Ale*_*sov 16
您可能希望复制现有的webpack.config.js文件,对其进行修改并配置为使用它而不是初始文件.
这是步骤
在项目的根文件夹上创建配置文件夹并将文件复制到该文件夹webpack.config.js
(此文件位于..\node_modules\@ionic\app-scripts\config
根据需要修改复制的文件
在package.json
您项目的文件中添加:
"config": {
"ionic_bundler": "webpack",
"ionic_webpack": "./config/webpack.config.js"
}
Mav*_*k09 13
@Ionic版本中的模块路径映射 - 3.14.0
如果有人遇到类似的麻烦,要找出确切的变化才能使其正常工作.
在离子3(版本3.14.0)中,为了使别名映射工作,您必须在webpack.config.js
&中定义路径映射tsconfig.json
- 的package.json
要使用自定义webpack配置,请配置您package.json
的加载自定义webpack.config.js
.
"config": {
"ionic_webpack": "./config/webpack.config.js"
}
Run Code Online (Sandbox Code Playgroud)
- 配置/ webpack.config.js
将别名与默认的webpack配置合并...
const path = require('path');
const { dev, prod } = require('@ionic/app-scripts/config/webpack.config');
const webpackMerge = require('webpack-merge');
const customConfig = {
resolve: {
alias: {
'@app': path.resolve('src/app'),
'@pages': path.resolve('src/app/pages'),
'@constants': path.resolve('src/app/constants'),
'@components': path.resolve('src/app/components'),
"@shared": path.resolve('src/app/shared')
}
}
};
module.exports = {
dev: webpackMerge(dev, customConfig),
prod: webpackMerge(prod, customConfig)
};
Run Code Online (Sandbox Code Playgroud)
- 配置/测试/ webpack.config.js
将别名与默认的webpack配置合并...
const path = require('path');
const webpackDefault = require('@ionic/app-scripts/config/webpack.config');
const webpackMerge = require('webpack-merge');
const customConfig = {
resolve: {
alias: {
'@app': path.resolve('src/app'),
'@pages': path.resolve('src/app/pages'),
'@constants': path.resolve('src/app/constants'),
'@components': path.resolve('src/app/components'),
"@shared": path.resolve('src/app/shared')
}
}
};
module.exports = webpackMerge(webpackDefault, customConfig);
Run Code Online (Sandbox Code Playgroud)
- tsconfig.json
定义baseUrl
:paths
在tsconfig.json
类似以下内容:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@app/*": ["app/*"],
"@pages/*": ["app/pages/*"],
"@constants/*": ["app/constants/*"],
"@components/*": ["app/components/*"],
"@shared/*": ["app/shared/*"]
}
},
}
Run Code Online (Sandbox Code Playgroud)参考:我的离子env信息:
@ionic/cli-plugin-proxy : 1.4.13
@ionic/cli-utils : 1.14.0
ionic (Ionic CLI) : 3.14.0
Run Code Online (Sandbox Code Playgroud)
cordova (Cordova CLI) : 7.1.0
Run Code Online (Sandbox Code Playgroud)
@ionic/app-scripts : 2.1.4
Cordova Platforms : android 6.2.3 ios 4.5.1
Ionic Framework : ionic-angular 3.6.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11423 次 |
最近记录: |