我创建了一个私有的npm模块,当我在本地运行应用程序时,该模块工作正常。当我使用npm publish
时,它也会成功发布。但是,它依赖于库antd,如果我把它留在依赖,它会说它找不到antd@2.12.1。所以我将它移动到peerDependencies然后它将安装。当我尝试从我成功安装的npm包中导入任何组件(我从最简单的测试用例开始)时,它会抛出此错误:
Module parse failed: Unexpected token (5:2)
You may need an appropriate loader to handle this file type.
|
| const Module = ({children}) => (
| <span className=`module-title`>{children}</span>
| )
|
无论是否是使用antd的模块,上述加载程序问题都会显示出来。我的应用程序是使用webpack。我的webpack的模块:加载器部分可以在下面找到:
module: {
loaders: [
{ test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
// include: /node_modules\/@nuralogix\/dfx-ui\/src/
},
{ test: /\.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
// include: /node_modules\/@nuralogix\/dfx-ui\/src/
},
{ test: /\.global\.css$/,
use: [ 'style-loader', 'css-loader' ]
},
{ test: /^((?!\.global).)*\.css$/,
use: [ 'style-loader', 'css-loader' ]
},
{ test: /\.global\.less$/,
use: [ 'style-loader', 'css-loader', 'less-loader' ]
},
{ test: /^((?!\.global).)*\.less$/,
use: [ 'style-loader', 'css-loader', 'less-loader' ]
},
include:
中的评论过去有帮助,但目前会导致错误。
我非常感谢有关为什么我不能使用这个模块的任何建议或想法(尽管看似简单)。
Babel文件供参考:
{
"presets": [
["env", {
"targets": { "node": 7 },
"useBuiltIns": true
}],
"stage-0",
"react"
],
"env": {
"production": {
"presets": ["react-optimize"],
"plugins": [
"babel-plugin-dev-expression",
["import", {"libraryName": "antd", "style": true}]
]
},
"development": {
"plugins": [
"transform-class-properties",
"transform-es2015-classes",
["import", {"libraryName": "antd", "style": true} ]
]
}
}
}
注意:我非常有信心我没有正确编译成es5。我已经添加了这两个脚本并在我的package.json
中安装了相关文件"compile": "rimraf lib/* && babel src -d lib",
"prepare": "npm run compile"
现在,我收到了这个错误:
sh: 1: babel: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! packageName compile: 'rimraf lib/* && babel src -d lib'
npm ERR! spawn ENOENT
我的.babelrc文件与上面相同,只是我添加了:
"transform-runtime",
对dev和prod。
是否有人有使用rimraf或其他任何东西创建用于将es6编译为es5的脚本的经验?
作为参考,我基于本文的大部分新增内容:
答案 0 :(得分:0)
事实上,答案很简单。
在根文件夹中创建.npmignore
,将源添加到忽略列表,例如
/src
/node_modules
.git