我正在尝试在我的项目中使用一个非常新的第三方模块,它是我使用
npm
安装的。该模块显然是在具有不区分大小写的文件系统的操作系统上开发的,因此它需要一个文件名,而实际的文件名是
Injectable.js
。这打破了捆绑过程。
模块的开发人员知道这个问题。同时,我正在尝试弄清楚如何按原样使用模块。我正在使用Webpack来捆绑我的项目。
我的项目相关部分的树形结构大致如下:
├──config
│ ├──webpack
│ ├──webpack.js
├──src
│ ├──client
│ ├──index.js
├──node_modules
│ ├──the module in question
│ ├── dist
│ │ ├── decorators
│ │ │ ├── providers
│ │ │ ├── Injectable.js
│ │ │
│ │ ├── index.js
├──gulpfile.js
node_modules/the module in question/dist
文件夹中的
index.js
文件需要providers文件夹中的文件
Injectable.js
,但需要使用命令
require('./decorators/providers/injectable');
我想在该
index.js
中使用
./decorators/providers/Injectable
作为
./decorators/providers/injectable
的别名。
下面是我在webpack.js文件中执行的操作:
resolve: {
alias: {
'./decorators/providers/injectable': './decorators/providers/Injectable.js',
}
但是这仍然不起作用;我得到了错误
Module not found: Error: Cannot resolve 'file' or 'directory' ./decorators/providers/injectable
你能建议一下如何在捆绑Webpack的同时将节点模块中的一个文件名替换为另一个文件名吗?
更新:
以下是webpack的配置文件:
var path = require('path');
var rucksack = require('rucksack-css')({
fallbacks: true,
autoprefixer: true
var precss = require('precss');
var csswring = require('csswring');
var webpack = require('webpack');
module.exports = {
context: path.join(__dirname, '../../'),
debug: false,
entry: [
'./src/client/'
output: {
path: path.join(__dirname, '../../public/assets/js'),
filename: 'bundle.js'
module: {
loaders: [
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel?stage=1'
test: /\.css$/,
loader: 'style-loader!css-loader!postcss-loader'
{test: /\.png$/, loader: 'file-loader'},
{test: /\.gif$/, loader: 'file-loader'},
{test: /\.jpe?g$/, loader: 'file-loader'},
{test: /\.eot$/, loader: 'file-loader'},
{test: /\.woff2?$/, loader: 'file-loader'},
{test: /\.ttf$/, loader: 'file-loader'},
{test: /\.svg$/, loader: 'file-loader'}
postcss: function () {
return [rucksack, precss, csswring];
plugins: [
new webpack.NormalModuleReplacementPlugin(
/ng-forward\/dist\/decorators\/providers\/injectable\.js/,
require.resolve('ng-forward/dist/decorators/providers/Injectable')
resolve: {
extensions: ['', '.js']