Mar*_*sen 1 node.js npm webpack
我正在尝试为模块添加别名,但是我不确定如何使用 package.json
在 webpack 中,你会做这样的事情:
module.exports = {
//...
resolve: {
alias: {
'pixi.js': 'pixi.js-legacy'
}
}
};
Run Code Online (Sandbox Code Playgroud)
但是没有 webpack 的等价物是什么?
小智 11
有一个 npm 包用于此目的:module-alias。
安装后,您可以将别名添加到 package.json,如下所示:
"_moduleAliases": {
"@root" : ".", // Application's root
"@deep" : "src/some/very/deep/directory/or/file",
"@my_module" : "lib/some-file.js",
"something" : "src/foo", // Or without @. Actually, it could be any string
}
Run Code Online (Sandbox Code Playgroud)
确保将此行添加到应用程序主文件的顶部:
"_moduleAliases": {
"@root" : ".", // Application's root
"@deep" : "src/some/very/deep/directory/or/file",
"@my_module" : "lib/some-file.js",
"something" : "src/foo", // Or without @. Actually, it could be any string
}
Run Code Online (Sandbox Code Playgroud)
您应该只在最终产品中使用它(而不是您打算在 npm 中发布或在其他地方使用的包) - 它修改了 require 的行为。
San*_*Ben 10
从 NPM 版本 6.9 开始,无需安装任何其他软件包即可支持它:
$ npm i aliasName@npm:packageToInstall
Run Code Online (Sandbox Code Playgroud)
???
$ npm i aliasName@npm:packageToInstall
Run Code Online (Sandbox Code Playgroud)
这个想法似乎npm:是依赖版本说明符中的类似 URI 的方案。
// package.json
"dependencies": {
"aliasName": "npm:packageToInstall@^1.6.1"
}
Run Code Online (Sandbox Code Playgroud)